\doxysection{cr\+START }
\hypertarget{group__cr_s_t_a_r_t}{}\label{group__cr_s_t_a_r_t}\index{crSTART@{crSTART}}
croutine. h 
\begin{DoxyPre}
crSTART( CoRoutineHandle\_t xHandle );\end{DoxyPre}


This macro MUST always be called at the start of a co-\/routine function.

Example usage\+: 
\begin{DoxyPre}
// Co-\/routine to be created.
void vACoRoutine( CoRoutineHandle\_t xHandle, UBaseType\_t uxIndex )
\{
// Variables in co-\/routines must be declared static if they must maintain value across a blocking call.
static int32\_t ulAVariable;

    // Must start every co-\/routine with a call to crSTART();
    crSTART( xHandle );

    for( ;; )
    \{
         // Co-\/routine functionality goes here.
    \}

    // Must end every co-\/routine with a call to crEND();
    crEND();
\}\end{DoxyPre}


croutine. h 
\begin{DoxyPre}
crEND();\end{DoxyPre}


This macro MUST always be called at the end of a co-\/routine function.

Example usage\+: 
\begin{DoxyPre}
// Co-\/routine to be created.
void vACoRoutine( CoRoutineHandle\_t xHandle, UBaseType\_t uxIndex )
\{
// Variables in co-\/routines must be declared static if they must maintain value across a blocking call.
static int32\_t ulAVariable;

    // Must start every co-\/routine with a call to crSTART();
    crSTART( xHandle );

    for( ;; )
    \{
         // Co-\/routine functionality goes here.
    \}

    // Must end every co-\/routine with a call to crEND();
    crEND();
\}\end{DoxyPre}
 